package com.charity.service;

import com.charity.domain.Donation;

import java.util.List;

public interface IDonationService {
    /**
     * 创建捐赠记录
     * @param donation 捐赠信息
     * @return 创建结果
     */
    boolean createDonation(Donation donation);

    /**
     * 获取捐赠记录详情
     * @param donationId 捐赠ID
     * @return 捐赠信息
     */
    Donation getDonationById(Long donationId);

    /**
     * 获取用户的捐赠记录
     * @param userId 用户ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 捐赠记录列表
     */
    List<Donation> getUserDonations(Long userId, int pageNum, int pageSize);

    /**
     * 获取项目的捐赠记录
     * @param projectId 项目ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 捐赠记录列表
     */
    List<Donation> getProjectDonations(Long projectId, int pageNum, int pageSize);

    /**
     * 获取项目的总捐赠金额
     * @param projectId 项目ID
     * @return 总捐赠金额
     */
    double getProjectTotalAmount(Long projectId);

    /**
     * 获取用户的总捐赠金额
     * @param userId 用户ID
     * @return 总捐赠金额
     */
    double getUserTotalAmount(Long userId);
}